Numerous types of computer-based applications are run in distributed computing environments—e.g., using resources of various network-accessible services supported by cloud-based providers. In many cases, clusters comprising several cooperating nodes or servers may be set up for an application, with one or more of the nodes with special responsibilities within a cluster being designated as “master” nodes at a given point in time. A master node of a database cluster may, for example, be responsible for handling a different mix of client input/output (I/O) requests (such as writes as well as reads) than non-master nodes (which may be responsible for reads but not writes). For some applications, a master node may be required for a cluster to function correctly. Under certain types of failure conditions, selecting a master node for a cluster may present a non-trivial challenge.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to. When used in the claims, the term “or” is used as an inclusive or and not as an exclusive or. For example, the phrase “at least one of x, y, or z” means any one of x, y, and z, as well as any combination thereof.